home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 15 / CU Amiga Magazine's Super CD-ROM 15 (1997)(EMAP Images)(GB)[!][issue 1997-10].iso / CUCD / Graphics / Ghostscript / source / bughunt.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  1995-12-07  |  5KB  |  120 lines

  1. #! /bin/sh
  2. # NB: If your sh does not support functions, then try
  3. # /usr/local/bin/bash or /bin/ksh, if you have them.
  4. #
  5. # Hunt down compiler bugs that break gs.
  6. #
  7. # Usage:
  8. #    ./BUGHUNT "optimization level"
  9. # e.g.
  10. #    ./BUGHUNT "-O2"
  11. #
  12. # Start with the code compiled at the lowest optimization level where
  13. # it works, then run this script with suitable compiler options.  The
  14. # script will delete one object file at a time and rebuild gs at
  15. # a higher optimization level.  This should uncover the routine(s)
  16. # that the compiler is generating bad code for.
  17. #
  18. # In order to make this test possible in unattended batch mode,
  19. # ghostscript is run with command-line options that force creation of
  20. # a bitmap file, rather than a window.
  21. #
  22. # The okay subdirectory should contain correct output for each
  23. # of the tests.
  24. #
  25. # [06-Dec-1995]
  26.  
  27. OBJECTS="      adler32.o deflate.o gconfig.o gdevabuf.o gdevbit.o \
  28.           gdevbj10.o gdevcdj.o gdevdflt.o gdevdjet.o \
  29.           gdevemap.o gdevm1.o gdevm16.o gdevm2.o gdevm24.o \
  30.           gdevm32.o gdevm4.o gdevm8.o gdevmem.o gdevmpla.o \
  31.           gdevmrop.o gdevpbm.o gdevpccm.o gdevpcl.o gdevpcx.o \
  32.           gdevpipe.o gdevpng.o gdevprn.o gdevpsim.o gdevtfax.o \
  33.           gdevtfnx.o gdevtifs.o gdevx.o gdevxalt.o gdevxini.o \
  34.           gdevxxf.o gp_nofb.o gp_unifn.o gp_unifs.o gp_unix.o \
  35.           gs.o gsalloc.o gsbitops.o gsbittab.o gschar.o \
  36.           gschar0.o gscie.o gscolor.o gscolor1.o gscolor2.o \
  37.           gscoord.o gscsepr.o gsdevice.o gsdevmem.o gsdparam.o \
  38.           gsdps1.o gsfont.o gsfont0.o gshsb.o gsht.o gsht1.o \
  39.           gshtscr.o gsimage.o gsimage0.o gsimage1.o gsimage2.o \
  40.           gsimage3.o gsimpath.o gsinit.o gsiodev.o gsline.o \
  41.           gsmain.o gsmatrix.o gsmemory.o gsmisc.o gspaint.o \
  42.           gsparam.o gspath.o gspath1.o gspcolor.o gsrop.o \
  43.           gsroptab.o gsstate.o gstype1.o gsutil.o gxacpath.o \
  44.           gxbcache.o gxccache.o gxccman.o gxcht.o gxclbits.o \
  45.           gxclfile.o gxclip2.o gxclist.o gxclpath.o gxclread.o \
  46.           gxcmap.o gxcpath.o gxctable.o gxdcconv.o gxdither.o \
  47.           gxdraw.o gxfill.o gxhint1.o gxhint2.o gxhint3.o \
  48.           gxht.o gxpaint.o gxpath.o gxpath2.o gxpcmap.o \
  49.           gxpcopy.o gxstroke.o ialloc.o ibnum.o iccinit0.o \
  50.           iconfig.o idebug.o idict.o idparam.o igc.o igcref.o \
  51.           igcstr.o iinit.o ilocate.o iname.o interp.o iparam.o \
  52.           ireclaim.o isave.o iscan.o iscanbin.o iscannum.o \
  53.           iscantab.o istack.o iutil.o iutil2.o jcapimin.o \
  54.           jcapistd.o jccoefct.o jccolor.o jcdctmgr.o jchuff.o \
  55.           jcinit.o jcmainct.o jcmarker.o jcmaster.o jcomapi.o \
  56.           jcparam.o jcprepct.o jcsample.o jdapimin.o \
  57.           jdapistd.o jdcoefct.o jdcolor.o jddctmgr.o jdhuff.o \
  58.           jdinput.o jdmainct.o jdmarker.o jdmaster.o jdphuff.o \
  59.           jdpostct.o jdsample.o jfdctint.o jidctint.o \
  60.           jmemmgr.o jutils.o png.o pngerror.o pngio.o pngmem.o \
  61.           pngtrans.o pngwrite.o pngwtran.o pngwutil.o sbcp.o \
  62.           sbhc.o sbwbs.o scfd.o scfdtab.o scfe.o scfetab.o \
  63.           sdctc.o sdctd.o sdcte.o seexec.o sfile.o sfilter1.o \
  64.           sfilter2.o shc.o shcgen.o siscale.o sjpegc.o \
  65.           sjpegd.o sjpege.o sjpegerr.o slzwc.o slzwd.o slzwe.o \
  66.           smtf.o spdiff.o srld.o srle.o sstring.o stream.o \
  67.           trees.o zarith.o zarray.o zbseq.o zchar.o zchar1.o \
  68.           zchar2.o zcie.o zcolor.o zcolor1.o zcolor2.o \
  69.           zcontrol.o zcrd.o zcsindex.o zcssepr.o zdevcal.o \
  70.           zdevice.o zdevice2.o zdict.o zdps1.o zfbcp.o \
  71.           zfdctc.o zfdctd.o zfdcte.o zfdecode.o zfile.o \
  72.           zfileio.o zfilter.o zfilter2.o zfilterx.o zfname.o \
  73.           zfont.o zfont0.o zfont1.o zfont2.o zfproc.o \
  74.           zgeneric.o zgstate.o zhsb.o zht.o zht1.o zht2.o \
  75.           zimage2.o ziodev.o ziodev2.o zmath.o zmatrix.o \
  76.           zmedia2.o zmisc.o zmisc1.o zmisc2.o zpacked.o \
  77.           zpaint.o zpath.o zpath1.o zpcolor.o zrelbit.o \
  78.           zstack.o zstring.o zsysvm.o ztoken.o ztype.o \
  79.           zupath.o zutil.o zvmem.o zvmem2.o zwppm.o"
  80.  
  81. TESTS="exepsf tiger"
  82.  
  83. dotest()
  84. {
  85.     # Create empty output file, so even if gs core dumps,
  86.     # we will have something to compare against.
  87.     touch $1.ljp
  88.     ./gs -sDEVICE=ljetplus -r75x75 -sOutputFile=$1.ljp \
  89.         $1.ps quit.ps < /dev/null
  90.     if cmp $1.ljp okay/$1.ljp
  91.     then
  92.         /bin/true
  93.     else
  94.         echo COMPARISON FAILURE: $1.ljp okay/$1.ljp
  95.         echo "Remaking $f and gs with lower optimization"
  96.         /bin/rm -f $f ./gs
  97.         make $f gs
  98.     fi
  99. }
  100.  
  101. for f in $OBJECTS
  102. do
  103.     echo ==================== $f ====================
  104.  
  105.     date
  106.  
  107.     # Remove the old (good) object file and ghostscript
  108.     /bin/rm -f $f gs
  109.  
  110.     # Rebuild gs with optimization; only one object file should be
  111.     # recreated.
  112.     make gs CC="cc $1"
  113.  
  114.     # Now check this new version of gs with each test file.
  115.     for t in $TESTS
  116.     do
  117.         dotest $t
  118.     done
  119. done
  120.